#include <iostream>

#include <unicode/uchar.h>

using namespace icu;

void CheckWhiteSpace(uint32_t c)
{
    std::cout << std::hex << std::showbase << c << ":"
        << " " << std::boolalpha << (u_isUWhiteSpace(c) != 0) << std::endl;
}

int main()
{
    CheckWhiteSpace(' ');    // 0x20: true
    CheckWhiteSpace('\t');   // 0x9: true
    CheckWhiteSpace('\n');   // 0xa: true
    CheckWhiteSpace('\r');   // 0xd: true
    CheckWhiteSpace('a');    // 0x61: false
    CheckWhiteSpace('\xa0'); // 0xffffffa0: false
    CheckWhiteSpace(0x1680); // 0x1680: true
    CheckWhiteSpace(0x2000); // 0x2000: true
    CheckWhiteSpace(0x2001); // 0x2001: true
    CheckWhiteSpace(0x2002); // 0x2002: true
    CheckWhiteSpace(0x2003); // 0x2003: true
    CheckWhiteSpace(0x2004); // 0x2004: true
    CheckWhiteSpace(0x2005); // 0x2005: true
    CheckWhiteSpace(0x2006); // 0x2006: true
    CheckWhiteSpace(0x2007); // 0x2007: true
    CheckWhiteSpace(0x2008); // 0x2008: true
    CheckWhiteSpace(0x2009); // 0x2009: true
    CheckWhiteSpace(0x200a); // 0x200a: true
    CheckWhiteSpace(0x200b); // 0x200b: false
    CheckWhiteSpace(0x205f); // 0x205f: true
    CheckWhiteSpace(0x3000); // 0x3000: true
    CheckWhiteSpace(0xfeff); // 0xfeff: false
    return 0;
}
